Determination and presentation of package pricing offers in response to customer interest in a product

ABSTRACT

A system and method for determination and presentation of package offers. A package offer is an offer for sale by a retailer of a package of products at a package price. A retailer may offer products for sale in an on-line retail environment or in a physical retail environment. A determination is made that a primary product is of interest to a customer. This determination may involve detecting and interpreting input signals transmitted from a customer device. In response to detecting that the primary product is of interest to the customer, a package is determined that may comprise the primary product and at least one secondary product. A package may be determined by accessing a database to locate a pre-determined package or to select the secondary products ad hoc. A package price is determined that is less than the sum of the corresponding retail prices of the primary product and secondary products in the package. A package price may be based on a profit margin of the primary product and/or a profit margin of at least one of the secondary products. A package offer for the sale of the package at the package price is then presented to the customer. The customer may indicate an acceptance of the package offer and authorize a financial account to be charged for the amount of the package price. The package products may be shipped to the customer or may be picked up at a retail establishment.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application claims priority under 35 U.S.C. §120 to, and isa divisional of, U.S. patent application Ser. No. 13/025,814 titled“DETERMINATION AND PRESENTATION OF PACKAGE PRICING OFFERS IN RESPONSE TOCUSTOMER INTEREST IN A PRODUCT” and filed Feb. 11, 2011, which issues asU.S. Pat. No. 8,712,860 on Apr. 29, 2014, and which itself is acontinuation of U.S. patent application Ser. No. 09/360,422 titled“DETERMINATION AND PRESENTATION OF PACKAGE PRICING OFFERS IN RESPONSE TOCUSTOMER INTEREST IN A PRODUCT” and filed Jul. 23, 1999, and whichissued as U.S. Pat. No. 7,899,710 on Mar. 1, 2011, and which is acontinuation-in-part of U.S. patent application Ser. No. 09/085,424filed May 27, 1998 and issued as U.S. Pat. No. 6,138,105 on Oct. 24,2000 entitled “SYSTEM AND METHOD FOR DYNAMIC ASSEMBLY OF PACKAGES INRETAIL ENVIRONMENTS”. The entirety of each of the above applications isincorporated by reference herein for all purposes.

TECHNICAL FIELD

The present invention relates to retail pricing of products presented tocustomers as a package. More particularly, the present invention relatesto the determination and presentation of retail package pricing offers.

BACKGROUND OF THE INVENTION

Retailers often attempt to increase their overall revenues byencouraging customers to spend more money per visit to a retailestablishment. One method retailers have utilized to encourage customersto spend more money during a visit to a retail establishment is to offera discount for the purchase of multiple units of a single product. Sucha discount scheme is typically enticing to customers when offered inconnection with non-perishable goods that require replacement over time(e.g., canned goods). However, customers tend not to be persuaded topurchase multiple units of consumer products such as clothing orelectronics. Other methods for encouraging customers to spend more moneyduring a visit to a retail establishment have been attempted withvarying degrees of success.

In general, customers are more likely to increase expenditures at aretail establishment if they perceive that they are receiving personalattention and/or a discount not available to other customers. As anexample, small privately owned shops (“boutiques”) are often successfulin encouraging customers to spend more money per visit by providingpersonal sales assistants to assist their customers. Personal salesassistants are especially effective if they have the authority to offerpersonalized package pricing discounts to the customers. For example, asales assistant in an exclusive men's store, when helping a customer whois considering the purchase of a suit, may suggest a shirt and tie to gowith the suit. The salesman may offer to sell the shirt and tie for only$50 above the price of the suit (wherein the retail prices of the shirtand tie are $45 and $25, respectively) if the customer agrees topurchase the suit. In this example, the customer is more likely to buythe suit as well as the shirt and the tie. The retailer benefits bycompleting a transaction and by increasing the purchase total of thattransaction. The retailer may be particularly willing to offer asubstantial discount on the shirt and tie if a large profit margin is tobe realized on the suit.

Larger retailers and retail chains, however, have been unable to takeadvantage of such a personalized package pricing method. Personalizedpackage pricing in a sizable retail environment would inappropriatelyplace negotiating and price structure power in the hands of a largenumber of store sales personnel. In order to effectively utilize theabove-described personalized price packaging method, store salespersonnel would require intimate knowledge of the cost of each item andwould require the ability to quickly and correctly determine anattractive, yet still profitable, price package to offer a customer.Placing such negotiating and price structure power in the hands of toomany store sales personnel is particularly undesirable due to thepotential for fraud and potential loss of profits. Specifically, salespersonnel may be apt to sell products at substantial discounts to theirfriends and family.

On-line retailers suffer from the same inability to offer personalizedpackage pricing discounts and are thus unable to encourage customers topurchase items which are of interest to the customers, whilesimultaneously increasing the customers' purchase totals. In fact,on-line retailers suffer from an acute lack of ability to offerpersonalized sales assistance to their customers in general.

Accordingly, there remains a need for a system and method to enableretailers, particularly on-line retailers, to provide personalized salesassistance for encouraging customers to complete purchases that they areconsidering and to increase their purchase total.

SUMMARY OF THE INVENTION

The present invention satisfies the above-described needs by providing asystem and method for the determination and presentation of packageoffers in response to an indication of a customer's interest in aprimary product. A retailer may offer products for sale in an on-lineretail environment, such as via a web-site, or in a physical retailenvironment. In response to an indication of interest in a primaryproduct by a customer, a package offer is presented to the customer. Apackage offer is an offer for sale by a retailer of a package ofproducts at a package price. The package of products typically comprisesthe primary product and at least one secondary product. The primaryproduct and the at least one secondary product each have a correspondingretail price. A package price is determined for the package, which istypically less than the sum of the corresponding retail prices of theprimary product and the at least one secondary product. In oneembodiment of the present invention, the determination of the packageprice and the at least one secondary product included in the package isbased on the profit margin of at least one of the primary product andthe at least one secondary product.

The package offer is then presented to the customer. If the customerprovides a customer response indicating a rejection of the packageoffer, another package to be offered to the customer may be determined.This other package may comprise (i) the primary product and at least onesecondary product that is different from at least one of the previouslyincluded at least one secondary products, or (ii) the primary productand the same at least one secondary product at a package price that islower than the previously presented package price. If the customerresponse indicates a payment identifier and/or an acceptance of thepackage offer, a financial account identified by the payment identifiermay be charged for the amount of the package price. Upon completion ofthe transaction with the customer, transaction data relating to sale ofthe package may be stored in a database.

Package products of an accepted package offer may be shipped to thecustomer automatically or upon request by the customer. Alternately, thecustomer may be provided with a code identifying the package offer andproduct identifiers for the package products. The customer may visit aretail establishment to pick up the package products and may provide thecode to the retailer for input into a point-of-sale terminal. Thepoint-of-sale terminal may be in communication with a central server,which may in turn be in communication with a database storing the codeand the product identifiers for the package products. Thus, thepoint-of-sale terminal may be operable to communicate with the centralserver in order to determine the package price to be charged to thecustomer or to verify that the package price has already been charged tothe financial account of the customer. If necessary, the point-of-saleterminal may communicate with a financial institution to charge thepackage price to the financial account of the customer.

The present invention may be practiced in a multi-retailer embodiment.For example the primary product may be sold by a first retailer and asecondary product may be sold by a second retailer. Upon completion ofthe transaction with the customer, appropriate portions of the chargedpackage price may be distributed to the first retailer and the secondretailer. A central server may be operable to handle the transaction onbehalf of the multiple retailers and to distribute the appropriatefunds.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1, comprising FIG. 1A, FIG. 1B and FIG. 10, provides an overviewblock diagram of various systems in accordance with exemplaryembodiments of the present invention.

FIG. 2 comprising FIG. 2A, FIG. 2B, FIG. 2C, FIG. 2D, and FIG. 2E is anillustration of various illustrative configurations of a productdatabase in accordance with exemplary embodiments of the presentinvention.

FIG. 3 illustrates an exemplary session table of a session database inaccordance with an exemplary embodiment of the present invention.

FIG. 4 illustrates an exemplary transaction table of a transactiondatabase in accordance with an exemplary embodiment of the presentinvention.

FIG. 5 illustrates an exemplary customer table of a customer database inaccordance with an exemplary embodiment of the present invention.

FIG. 6A and 6B each illustrate an exemplary web-page of a web-site of anon-line retail establishment for presenting a package offer to acustomer in accordance with an exemplary embodiment of the presentinvention.

FIG. 7 is a flow chart illustrating the general steps of an exemplarymethod for presenting a package offer to a customer in accordance withan exemplary embodiment of the present invention.

FIG. 8, comprising FIG. 8A, FIG. 8B, FIG. 8C and FIG. 8D, provides flowcharts illustrating exemplary methods for assembling package offers inaccordance with an exemplary embodiment of the present invention.

FIG. 9 is a flow chart illustrating an exemplary method for determininga package price in accordance with an exemplary embodiment of thepresent invention.

FIGS. 10A and 10B are a flow chart illustrating an exemplary method fordetermining a package offer in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS

The present invention provides a system and method to enable retailers,particularly on-line retailers, to determine that a product is ofinterest to a customer and to determine a package of products to beoffered to the customer, at a package price. In response to detecting anexpression of interest by a customer in a particular product, referredto herein as a primary product, a package is determined. Determining apackage may comprise (i) retrieving a predetermined package of productsassociated with the product of interest to the customer from a database,or (ii) assembling a package based on predetermined considerations. Apackage may be assembled using various considerations. Applicant'sco-pending U.S. patent application Ser. No. 09/085,424, filed May 27,1998, entitled “SYSTEM AND METHOD FOR DYNAMIC ASSEMBLY OF PACKAGES INRETAIL ENVIRONMENTS” discloses a method and system for assemblingpackages of products based on revenue-management theories, availableinventory, and complementary families of products. For example, apackage of product may be assembled based on product information such assales performance data such as inventory availability and demand rate.The products included in a package may be selected such that eachproduct is selected from a different department of the retailer (e.g.one product is from the deli department and another product is from thehouse-wares department). Furthermore, customer may be rewarded foraccepting packages that include products from a variety of department,or from complementary departments, by being offered package prices thatare more discounted than package prices for packages that do not includeproducts from complementary, or a variety of, departments.

The package may comprise, for example, the primary product and at leastone secondary product. A package price is then determined for thepackage. The package price may be less than the sum of the retail pricesof each of the package products (i.e., the primary product and the atleast one secondary product). The customer is presented with a packagepricing offer (for brevity referred to herein as a “package offer”),which is an offer for the sale of the package of products at the packageprice.

Detecting that a primary product is of interest to the customer mayinvolve detecting that information relating to the primary product isdisplayed on a web-page viewed by the customer for a pre-determinedamount of time, detecting an input signal generated by the customer inresponse to information displayed on a web-page relating to the primaryproduct, detecting that the customer has added the primary product to avirtual shopping cart, or detecting a keyword input by the customer intoan input field on a web-page and determining that the keyword relates tothe primary product. Other signals transmitted from a customer devicemay also be interpreted as an expression of interest by the customer inthe primary product. Also, the customer may explicitly indicate aninterest in the primary product by requesting to be presented with apackage offer associated with the primary product.

As disclosed above, a package may be determined in a variety of ways.For example, a package may be determined by accessing a database tolocate a pre-determined package associated with the primary productidentifier. Determining a package may also involve accessing a databaseto select secondary products from a plurality of available secondaryproducts. The selected secondary products may have a pre-determinedrelationship with the primary product, such as a similar color, utility,or the like. For example, products that are complementary to one anothermay be selected for inclusion in a package (e.g., cream cheese andbagels or hot dogs and buns). The secondary product may also be selectedbased the profit margin of the primary product and/or the profit marginof the secondary product. The database may also store informationrelating to at least one additional product of interest to the customer.Accordingly, determining a package may involve accessing the database todetermine the at least one additional product of interest to thecustomer and selecting the additional product of interest to thecustomer as a secondary product for the package. Similarly, the databasemay store information relating to a previous transaction of thecustomer, which includes a previously sold product. Determining thepackage to be offered to the customer may involve accessing the databaseto determine a previously sold product and selecting a secondary productthat has a pre-determined relationship with the previously sold product.

The package price may also be determined in a variety of ways. Forexample, determining the package price may involve determining adiscounted price for each of the secondary products in the package andsumming the retail price of the primary product and the discountedprices for the secondary products. The discounted price for each of thesecondary products may be based on a profit margin of the primaryproduct. In another embodiment, determining the package price involvesdetermining a discounted price for the primary product and for thesecondary products and summing the discounted prices of the primaryproduct and the secondary products. A discounted price for the primaryproduct or the secondary products may be based on a profit margin of theprimary product and/or a profit margin of at least one of the secondaryproducts.

A package offer may comprise an offer for sale of a pre-determinednumber of the secondary products, selected by the customer, at thepackage price. The package offer may instead comprise an offer for saleof a customer-selected number of the secondary products, wherein thesecondary products are selected by the customer from a plurality ofavailable secondary products, at a package price. The package price maythus vary based on the customer-selected number of secondary products.In another embodiment, the package offer may comprise the primaryproduct and a plurality of lists of secondary products. The packageoffer may comprise an offer for sale of a pre-determined number of thesecondary products, wherein one secondary product is selected by thecustomer from each of the plurality of lists, at the package price. Inanother embodiment, multiple package offers may be presented to thecustomer. By way of illustration, a first package offer for sale of afirst package at a first package price may be presented to the customeralong with a second package offer for sale of a second package at asecond package price. The customer may thus choose to accept one or moreof the package offers.

Systems in accordance with the present invention may comprise a centralserver and a customer device. Point-of-sale devices and/or retailerdevices may also be included. A central server may include, or be incommunication with, a database storing information pertaining toproducts. A central server may also host or be in communication with aweb-site displaying information pertaining to products offered for sale.A central server may thus be operable to determine when a customer hasexpressed an interest in a primary product, to determine a package, todetermine a package price, and to present a package offer to thecustomer. A central server may also comprise such components as acommunications port operable to send and receive data and a processoroperable to perform the above-describe functions in response to signalsor data received via the communications port.

A customer device may be operable to send input signals, such as dataand commands, to the central server. The customer device may send suchinput signals to the central server via a web-site. A customer devicemay include such components as a display device, a communications port,and an input device. An input device may be operable to generate aninput signal indicating an interest in a primary product. The processormay be operable to manage and control the functions of the customerdevice, such as executing a browser to display pages of the web-site onthe display device, send signals via the communications port to thecentral server, receive a package offer from the central server via thecommunications port and display the package offer on the display device.The processor may be operable to perform at least some of thefunctionality associated with the customer device.

The customer device allows the customer to communicate with a centralcontroller operating in accordance with the present invention and maycomprise, for example, a kiosk, personal computer, or portable inputdevice, in communication with the central server. A portable inputdevice may comprise, for example, a personal digital assistant (PDA),hand-held bar code scanner, a one-way or two-way pager, or a wire orwireless telephone (e.g. a cellular telephone). The customer device maythus comprise an input device operable to input the primary productidentifier, a display device operable to present a package offerreceived from the central server, and a printer operable to print aprinted version of the package offer. In a physical retail embodimentthe customer device may be further operable to output a printed versionof the package offer that may include a code identifying the packageoffer and product identifiers for the primary product and the secondaryproducts included in the package. The input device of the customerdevice may optionally be a bar code reader.

The following description will hereinafter refer to the drawings, inwhich like numerals indicate like elements throughout the severalfigures.

Referring now to FIG. 1, comprising FIG. 1A, FIG. 1B, and FIG. 10,overview block diagrams of systems 100A-C are provided in accordancewith exemplary embodiments of the present invention. As shown in FIG.1A, a system 100A in accordance with an exemplary embodiment of thepresent invention may be practiced in an on-line retail environment. Insuch an embodiment, a central server 102 may host or be in communicationwith an on-line retail establishment. The central server 102 may be a“web server” of a retailer (e.g. a retailer server). The central server102 may generate web pages (documents on the World Wide Web thattypically include an HTML file and associated graphics and script files)to be accessed via the World Wide Web, and may also allow purchases tobe made. A web site may consist of several such web pages and associateddatabases. According to another embodiment, the central server 102 is acomputer associated with the operation of a physical store. Such acomputer, for example a point-of-sale (POS) server, would perform taskssuch as inventory management and item pricing for the store.

On-line retail establishments are commonly referred to as “virtualstores,” “electronic-stores,” “e-stores,” “Internet stores,”“e-commerce” web-sites, “e-business” web-sites, and the like. An on-lineretail establishment comprises appropriate hardware and software fordisplaying web-pages of a web-site in order to advertise products andfor completing transactions with customers via the web-site. The term“product” is used herein to refer to a good and/or a service. If thecentral server 102 does not host the on-line retail establishment, itmay be in communication with another server that hosts the on-lineretail establishment. For the sake of clarity, it will be assumed hereinthat the central server 102 hosts the exemplary on-line retailestablishment. As should be apparent to those skilled in the art, theentity controlling the central server 102 may be distinct from theon-line retailer.

The central server 102 may comprise a conventional computer systemconfigured with hardware and/or software required for communicating witha distributed network 104 and (optionally) for hosting an on-line retailestablishment. Those skilled in the art will understand that devices incommunication with each other need not be continually transmitting toeach other. On the contrary, such devices need only transmit to eachother as necessary, and may actually refrain from exchanging data mostof the time. For example, a device in communication with another devicevia the Internet may not transmit data to the other device for weeks ata time.

The central server 102 may further comprise a processor 110 forexecuting various application program modules. Processor 110 maycomprise one or more microprocessors, such as Pentium® microprocessors.If the processor comprises a plurality of microprocessors, the pluralityof microprocessors may or may not operate in parallel. The processor 110is in communication with a data storage device 114. The data storagedevice 114 comprises an appropriate combination of magnetic, opticaland/or semiconductor memory, and may include Random Access Memory (RAM),Read-Only Memory (ROM) and/or a hard disk. The processor 110 and thestorage device 114 may be, for example (i) located entirely within asingle computer or other computing device; (ii) connected to each otherby a remote communication medium, such as a serial port cable, telephoneline or radio frequency transceiver; or (iii) a combination thereof. Inone embodiment, the central server 102 may comprise one or morecomputers that are connected to a remote server computer for maintainingdatabases.

The data storage device 114 stores a program 116 for controlling theprocessor 110. The processor 110 performs instructions of the program116, and thereby operates in accordance with the present invention, andparticularly in accordance with the methods described in detail herein.The program 116 may be stored in a compressed, un-compiled and/orencrypted format. The program 116 furthermore includes program elementsthat may be necessary, such as “device drivers” for allowing theprocessor 110 to interface with computer peripheral devices. Appropriatedevice drivers and other necessary program elements are known to thoseskilled in the art, and need not be described in detail herein.

The storage device 114 also stores (i) an application program moduleoperating system (OS) 118, (ii) a database management system (DBMS) 120,(iii) a product database 122, (iv) a transaction database 124, (v) asession database 126, and (vi) a customer database 128. The databases122, 124, and 126 are described in detail below and depicted withexemplary entries in the accompanying figures. As will be understood bythose skilled in the art, the schematic illustrations and accompanyingdescriptions of the databases presented herein are exemplaryarrangements for stored representations of information. A number ofother arrangements may be employed besides those suggested by the tablesshown. Similarly, the illustrated entries of the databases representexemplary information, and those skilled in the art will understand thatthe number and content of the entries can be different from thoseillustrated herein.

Central server 102 further comprises a communications port 112 forsending data to and receiving data from customer devices 106A, 106B and160C. The processor 110 may also be in communication with a clock 108that generates signals representing time and date.

Customer devices 106A, 106B and 106C may comprise conventional computersystems, kiosks, personal digital assistants (PDAs), or any other deviceconfigured with hardware and/or software for communicating with thedistributed network 104. Customer device 106B will now be discussed indetail. It should be understood that customer device 106B may berepresentative of customer devices 106A and 106C. Customer device 106Bcomprises a processor 130, which may comprise one or moremicroprocessors such as such as one or more Pentium® microprocessors. Ifthe processor comprises a plurality of microprocessors, the plurality ofmicroprocessors may or may not operate in parallel. The processor 130 isin communication with data storage device 134, which stores variousapplication program modules, such as an operating system (OS) 131 and a“browser” program module 133. The browser program module 133 is operableto interpret web-page files, such as HyperText Mark-up Language (HTML)files, received via the distributed network 104.

Customer devices 106A, 106B and 106C may also include other applicationprogram modules, such as electronic mail (e-mail) program modules, FileTransfer Protocol (FTP) program modules, other file transfer programmodules, and the like, to interact with other resources offered via thedistributed network 104. Customer devices 106B further comprises acommunications port 136 for sending and receiving data. Customer device106B further comprises peripheral devices, such as an output device 135,an input device 132, or any other well-known peripheral device. Theoutput device 135 may comprise a video monitor or other device operativeto display at least alphanumeric characters to the customer. The outputdevice may also comprise a printer operative to register indicia onpaper or other material, thereby printing receipts. The input device 132may comprise a keyboard, mouse, touch-screen, or microphone. Many typesof input devices and output devices are known to those skilled in theart, and need not be described in detail herein.

As shown, a customer device, as illustrated by customer device 106A, mayoptionally comprise a bar code reader 132A.

As shown, a customer device, as illustrated by customer devices 106B and106C, may be in communication with the central server 102 via thedistributed network 104. Alternatively, as illustrated by customerdevice 106A, a customer device may be in communication with the centralserver 102 via a dedicated communications link 105A. The connectionsbetween the various components of the exemplary system 100A may be wireor wireless connections and may comprise, for example, modem, directnetwork connection or any other means of communicating with thedistributed network 104. The distributed network 104 may comprise theInternet, a LAN, a WAN, or more than one interconnected network. Thoseof ordinary skill in the art will recognize that the networkconfiguration shown in FIG. 1 is by way of example only and is notintended to limit the scope of the present invention.

As shown in FIG. 1B, a system 100B in accordance with another exemplaryembodiment of the present invention may be practiced in a physicalretail environment. The central server 102 may be configured forcommunication with one or more point-of-sale terminals 108A, 108B and108C and one or more customer devices 106A, 106B and 106C located at oneor more retail establishments. The connections between the variouscomponents of the exemplary system 100B may be via modem, direct networkconnection or any other means of electronic communication. The centralserver 102 may be located at the retail establishment or may be remotelylocated from the retail establishment. As shown, customer devices 106Band 106C and point-of-sale terminals 108B and 108C may communicate withthe central server 102 via the distributed network 104. A customerdevice 106A and point-of-sale terminal 108A may also communicate withthe central server 102 via a dedicated communications links (105A and105B, respectively) or via other means of electronic communication.

As is known in the art, typical point-of-sale terminals are equippedwith processors and memory storage devices. Point-of-sale terminals mayfurther comprise peripheral devices such as keypads, barcode readers,credit card readers, other input devices, and display devices.Point-of-sale terminals may also be equipped with hardware and/orsoftware for communicating with a distributed network 104 or a dedicatedcommunications link 105B. Point-of-sale terminals are also customarilyoperable to communicate with one or more financial institutions viafinancial networks (not shown) for the purpose of completing financialtransactions.

A customer device located at a retail establishment may be referred toherein as a “customer service” device and may comprise a kiosk or aportable data input device, such as a barcode scanner. In oneembodiment, a customer may scan a product identifier, such as an SKU(stock keeping unit number) in the format of a one-dimensional ortwo-dimensional bar code, using a bar code scanner. The bar code scannermay be part of a customer service kiosk or may be a portable deviceavailable to the customer. In one variation of this embodiment, acustomer may be required to be a member of a “frequent shopper club” inorder to have access to the customer service device. The customerservice device may transmit the product identifier to the central server102 for assembly of a package. Assembly of a package at the centralserver 102 may be performed in the same manner as in an on-line retailenvironment. The database 114 described above with reference to anon-line retail environment may function equally well in a physicalretail environment.

FIG. 1C shows a multiple retailer system 100C in accordance with anotherexemplary embodiment of the present invention. The central server 102may be configured to manage package offers for multiple retailers.Accordingly, the system 100C may be employed in situations where acentral service maintains the central server 102 and different retailersmaintain respective retailer devices 140A, 140B and 140C. Retailers maysupply data relating to products and potential packages to the centralserver 102 via the retailer devices 140A, 140B and 140C. Retailerdevices 140B and 140C may communicate with the central server 102 via adistributed network 104. A retailer device 140A may alternatelycommunicate with the central server 102 via a direct communications link105C. Customer devices 106A, 106B, and 106C are also in communicationwith central server 102 in the manner described with respect to theembodiments described above. As will be readily apparent to those ofskill in the art, multiple retailer embodiments have applicability ineither an on-line retail environment or a physical retail environment.

Operation of a system 100C in accordance with a multiple retailerembodiment may best be described by way of example. In an on-line retailenvironment, a web-site of an on-line retail establishment mayadminister web-pages relating to products from a first retailer, asecond retailer and a third retailer. When the central server 102determines that a customer is interested in a primary product offeredfor sale by, for example, the first retailer, the central server 102 mayassemble a package that includes the primary product offered for sale bythe first retailer, a secondary product offered for sale by the secondretailer and another secondary product offered for sale by the thirdretailer. A package price may be calculated for the package, whichreflects a discount in the retail price of one or more of the packageproducts. If the customer accepts the package offer, the central server102 completes the transaction with the customer (i.e., collects funds inthe amount of the package price from the customer), instructs thevarious retailers to deliver the package products to the customer andsettles accounts with each retailer (i.e., provides each retailer withthe appropriate amount of funds based on the price of the product soldby the retailer as included in the package price). The tasks ofinstructing retailers to ship products and settling of accounts may beperformed electronically or manually.

The illustrative system architectures described with reference to FIG. 1have been provided by way of example only. These and other systemarchitectures will be apparent to those of ordinary skill in the art.Accordingly, the scope of the present invention should not be limited bythe various system architectures described and shown above.

FIG. 2, comprising FIG. 2A, FIG. 2B, FIG. 2C, FIG. 2D, and FIG. 2E, isan illustration of various illustrative embodiments of a productdatabase 122, as was shown in FIG. 1. Whether the present invention ispracticed in an on-line retail environment or in a physical retailenvironment, the central server 102 may be operable to access a productdatabase 122 in order to assemble a package. As mentioned, there aremany ways in which a package may be assembled. The configuration of theproduct database 122 may depend on the desired approach for packageassembly.

FIG. 2A demonstrates a product table 122A that may be used by thecentral server 102 to assemble packages ad hoc based on other productsin which the customer has expressed an interest. As shown, the exemplaryproduct table 122A includes a product identifier 202, a cost 204, aretail price 206 and a minimum price 208 for each product. The exemplaryproduct table 122A stores data records 210A-217A pertaining to variousproducts. These products, identified by product identifiers 202A-H, mayrepresent all or a portion of the products available in inventory, ormay represent a dynamic list of products in which the customer hasexpressed an interest during the current session or over past sessions.As used herein, the term “session” is meant to refer to interaction by acustomer with the central server 102 by way of a customer device 106A,106B or 106C either on-line or in a physical retail establishment. In anexemplary embodiment, a session database 126 (as shown in FIG. 1) may bemaintained to dynamically track products in which the customer hasexpressed an interest (see FIG. 3).

As mentioned, the profit margin to be realized by the retailer may playa significant role in the assembly of a package. While varying packagesmay be assembled based on products in which the customer has expressedan interest, only certain of these packages may make economic sense forthe retailer. Thus, the illustrative product table 122A includesfinancial data relating to each product. The financial data comprisesthe cost 204 of the product to the retailer, the retail price of theproduct 206, and the minimum price 208 at which the retailer or theoperator of the central server 102 will allow the product to be offeredin a package. Using this financial data in various ways, the centralserver 102 may calculate a package price for an assembled package anddetermine whether that package price meets certain pre-defined criteriafor profitability. For example, the retailer may specify that a packagemay only be offered to a customer if the package price reflects lessthan a 25% reduction in profit margin, as compared to the sum of theretail prices of the package products. Those skilled in the art willrecognize that a product may be included in the package at a price thatis anywhere between its retail price 206 and its minimum price 208. Itmay be desirable, in some cases, to include the primary product in thepackage at its full retail price and to offer discounted prices on onlythe secondary products in the package.

FIG. 2B demonstrates an alternate configuration of a product database122 that may be used by the central server 102 to assemble packages. Theexemplary product table 122B stores data records 210B-217B pertaining tovarious products. Each data record 210B-217B includes a list ofassociated secondary products 224 corresponding to each productidentifier 202. Accordingly, when the central server 102 determines thata primary product is of interest to a customer, the central server 102may access the product table 122B to ascertain a list of secondaryproducts 224 associated with that primary product. The exemplary producttable 122B also includes two pre-determined package prices, a “pick one”package price 226 and a “pick two” package price 228. It is envisionedthat a package offer may be presented to the customer as a menu ofsecondary products. If the customer chooses to purchase the primaryproduct and one secondary product from the menu, the “pick one” packageprice 226 will be effective.

Similarly, if the customer chooses to purchase the primary product andtwo secondary products from the menu, the “pick two” package price 228will be effective. Alternately, the package offer may be for each of theassociated secondary products 224 that correspond to a primary product.A package price for a package including all of the associated secondaryproducts may be calculated based on minimum prices 208 for each product(see FIG. 2A). Also, the associated secondary products included in thepackage may be selected based on a query of a session database 126 (seeFIG. 3) to determine which, if any, of the associated secondary products224 have been of interest to the customer in the past. Alternateembodiments of the product table 122B will be apparent to those of skillin the art. For example, any number of associated secondary products orpre-determined package prices may be included within the product table122B.

FIG. 2C demonstrates yet another alternate configuration of a productdatabase 122 that may be used by the central server 102 to assemblepackages. The exemplary product table 122C stores data records 210C-217Cpertaining to various products. Each data record 210C-217C includes aproduct identifier 202. Each data record 210C-217C further includes afirst list of associated secondary products 234 and a second list ofassociated secondary products 236 for each product identifier 202.Accordingly, when the central server 102 determines that a primaryproduct is of interest to a customer, the central server 102 may accessthe product table 122C to retrieve one or more lists of secondaryproducts associated with that primary product based on the productidentifier 202 of the primary product. The exemplary product table 122Balso includes a pre-determined package price 238. In an exemplaryembodiment, the customer may be presented with two (or more) menus ofsecondary products, each menu comprising the secondary products includedin the first and second associated list, respectively. The customer maybe entitled to receive a package, at the predetermined package price238, comprising one secondary product selected by the customer from afirst secondary product menu and one secondary product selected by thecustomer from a second secondary product menu. As an alternateembodiment, secondary products from either the first list of associatedsecondary products 234 or the second list of associated secondaryproducts 236 may be included in the package, at the package price 238,without any selection by the customer. Again, alternate embodiment ofthe exemplary product table 122C will occur to those skilled in the artand are considered to be within the scope of the present invention.

FIG. 2D demonstrates still a further alternate configuration of aproduct database 122 that may be used by the central server 102 toassemble packages. The exemplary product table 122D stores data records210D-217D pertaining to various products. Each data record 210D-217Dincludes a product identifier 202. Each product identifier 202 hasassociated therewith a first list of associated secondary products 234,a first package price 242 corresponding to the first list of associatedsecondary products 234, a second list of associated secondary products236, and a second package price 244 corresponding to the second list ofassociated secondary products 236. Accordingly, when the central server102 determines that a primary product is of interest to a customer, thecentral server 102 may access the product table 122D to retrieve thefirst list of associated secondary products 234 and/or the second listof associated secondary products 236, based on the product identifier202 of the primary product, for presentation to the customer.

In one embodiment, the central server 102 may present each list ofassociated secondary products 234 and 236 to the customer along with thecorresponding package prices 242 and 244. The customer may thus bepresented with the option to select either a first package or a secondpackage. In another embodiment the central server 102 may select onlyone list of secondary products (234 or 236) for inclusion in a packageto be presented to the customer. In this way, a different package may bepresented to the customer each time the customer indicates an interestin a particular product. Selection of a list of associated secondaryproducts (234 or 236) may be based, for example, on random or sequentialselection, or on historical data pertaining to the customer.

By way of illustration, the central server 102 may access a sessiondatabase 126 (described below) to determine whether some of the productsin one list of associated secondary products (234 or 236) were ofinterest to the customer in the past. Similarly, a query of thetransaction database 124 or the customer database 128 may reveal thatthe customer was previously offered certain products and had declined topurchase such products. In addition, a transaction database 124 or acustomer database 128 may be accessed to determine whether the customerhas a history of accepting package offers involving a particulardiscount rate. Other methods for selecting between multiple associatedsecondary products lists (234 or 236) will be apparent to those ofordinary skill in the art.

FIG. 2E demonstrates still a further alternate configuration of aproduct database 122 that may be used by the central server 102 toassemble packages. The exemplary product table 122E stores data records210E-213E pertaining to various products. Each data record 210E-213Eincludes a product identifier 202. Each product identifier 202 hasassociated therewith a secondary product identifier 254, a secondaryproduct identifier 256, and a package price 258. The product table 122Eillustrates an embodiment wherein various products offered for sale by aretailer have predefined associated package offers. In table 122E thepredefined package offers comprise the three products indicated byproduct identifier 202, product identifier 254, and product identifier256 and package price 258.

Accordingly, when the central server 102 determines that a primaryproduct is of interest to a customer, the central server 102 may accessthe product database 122E to retrieve a package offer based on theproduct identifier 202 of the primary product. Thus, the centralcontroller for product “P198” may retrieve product “P104” and product“P119” and present an offer to the customer for all three products for asingle package price of “$300.00”. The package offers may be previouslydefined by an operator of the central server 102 or automaticallydetermined and stored based on, for example, revenue managementtheories.

The above-described product tables 122A, 122B, 122C, 122D and 122E areprovided by way of example only. A system in accordance with the presentinvention may incorporate one or more of the exemplary product tables122A, 122B, 122C, 122D and 122E, and/or variations and/or combinationsthereof. Additionally, those skilled in the art will appreciate thatvarious aspects of the invention may be practiced without the need for aproducts database 122.

FIG. 3 is an illustrative session table 300 of a session database 126(as shown in FIG. 1) that may be used to track products determined tohave been of interest to a customer in a current session and priorsessions.

The illustrative session table 300 is particularly useful in the on-lineretail environment. Each session table 300 is identified by a uniquesession identifier 302. A session identifier may be associated with acustomer by storing a customer identifier and the session identifier 302in a customer database 128. A session identifier may be assigned to acustomer when the central controller first detects that a new customerhas entered the web site administered by the central server 102. Forexample, a session identifier may be assigned when it is detected that acustomer has “loaded” or connected to a page of the web site. Thesession table 300 stores data records 310-313 relating to variousproducts. Each data record 310-313 includes a product identifier 202, a“time selected” 306 and a “time released” 308. In an exemplaryembodiment, a web-site may comprise a web-page for each product offeredfor sale by the on-line retail establishment. Each web-page may have aunique identifier, which may be the same as or different from theproduct identifier 202. The central server 102 may be operable to detectthe time at which a particular web-page is accessed and released by acustomer device 106. Thus, the “time selected” 306 may correspond to thetime at which the central server 102 detects that the customer hasselected (or “loaded”) a particular web-page associated with acorresponding product 202. The “time released” may correspond to thetime at which the central server 102 determines that the customer hasreleased (or “unloaded”) the particular web-page. When the customerreleases a web-page, he or she may select another web-page and thecentral server 102 may record the appropriate information for such otherweb-page in the session table 300.

The session database record 300 may further include a customeridentifier. The customer identifier may comprise information thatuniquely identifies a customer or a customer device. In the onlineembodiment of the present invention, the customer identifier may beincluded within a “cookie” that is assigned to a customer the first timehe visits the web site of the central server 102 and deposited to thecustomer device as well as stored in the customer database 128. Such acookie is a block of data (e.g. a block of ASCII text) that a web server(e.g. the central server 102) stores on a customer device (e.g. apersonal computer). When a customer returns to the same web site, thebrowser of the customer device sends a copy of the cookie back to thecentral controller. Cookies may be used to identify users of thecustomer terminal, to instruct the central controller to send acustomized version of a web page, to submit account information for theuser, and for other administrative purposes. In the present invention, acookie may be used to instruct the central controller to retrieve thesession record(s) associated with the cookie in order to determine whatproducts the customer had previously indicated interest in.Alternatively, the cookie may store one or more session identifiersassociated with the customer device directly. A person of ordinary skillin the art of web site administration will understand many variations ofhow to track customer interest in various product over the course of asingle or multiple visits (e.g., sessions). A customer identifier may bethe same or different than the session identifier. For example, forpurposes of tracking several sessions of a single customer, the customermay be assigned a single customer identifier the first time he visitsthe web-site and a unique session identifier 302 each time he visits theweb-site.

The session table 300 may record all customer interactions with aweb-site from the time the customer logs on to the web-site until thecustomer logs off of the web-site, during a single visit to theweb-site. The elapsed time between a “time selected” 306 and a “timereleased” 308 may be useful in determining whether a product is ofinterest to the customer. The format for the “time selected” 306 and a“time released” 308″ illustrated in FIG. 3 is “hours:minutes:seconds”.For example, it may be determined that a customer is interested in aproduct if the web-page associated with that products is displayed tothe customer device 106 for more than a pre-determined amount of time(e.g., 2 seconds). Any time spent viewing a web-page that is less thanthe pre-determined amount of time may be considered to be casualbrowsing on the part of the customer.

Other methods for determining and recording the products of interest toa customer during an on-line session will occur to those of skill in theart. For example, the central server 102 may be configured to determinethat a customer is interested in a product only upon receiving an inputsignal to that effect. Upon receiving such an input signal, the centralserver 102 may record the appropriate product identifier 202 in thesession table 300. Examples of input signals that may indicate acustomer's interest in a product include: a key word search for theproduct, an e-mail requesting information relating to a product, arequest to download information relating to a product, addition of aproduct to a virtual shopping cart or other list of products selectedfor purchase, and the like.

FIG. 4 is an illustrative record 400 of the transaction database 124, asshown in FIG. 1. A transaction record 400 may be used to storetransaction data relating to a completed transaction. Transaction datamay be received from a customer device 106 or from a point-of-saleterminal 109A, 109B, 109C. Each transaction table 400 may be identifiedby a unique transaction identifier 402. A transaction table 400 may alsoinclude a session identifier 302 identifying a session table 300 (seeFIG. 3) from a session database 126. The transaction identifier 402 maybe associated with the customer by storing it in association with acustomer identifier (e.g. a “cookie” or a frequent shopper identifier)in a record of the customer database 128 (as illustrated in FIG. 5,described below).

A payment identifier 404, such as a credit card number or a financialaccount number, may also be recorded in the transaction record 400 toidentify the customer's financial account that was charged, debited orcredited during the initiating transaction. The purchase total 408representing the total purchase price paid by the customer may also bestored in the transaction record 400. The purchase total of “$307.79” inFIG. 4 is illustrated as comprising the sum of the “price paid” for eachof the products included in the transaction plus an exemplary 6.5% salestax. The transaction record further includes an indication of whetherthe customer was presented with a package offer during the transactionillustrated in the subject record. Such an indication is stored in the“package offered?” field 410. An indication of whether the package wasaccepted is stored in field 412. Fields 410 and 412 may be used by theoperator of central server 102 to track how many time package offers arepresented to and accepted by customers. Such information may be trackedfor individual customers by use of the session identifier 302.

The exemplary transaction record 400 stores data objects 417-420relating to products included in a package that was purchased by acustomer. Each data object 417-420 includes, for example, a productidentifier 202, a retail price 206 and a price paid 406. If the customerpurchased the product as part of a package offer, the price paid 406 maybe lower than the retail price 206. Corresponding to each productidentifier 202 is an indication of whether the product was purchased aspart of an accepted offer. This indication is stored in field 414. Anentry of “Y” in field 414 indicates that the corresponding product waspurchased as part of an accepted package offer. An entry of “N” in field414 indicates that the package was not purchased as part of an acceptedpackage offer. An indication of which product was the primary productthat triggered the presentation of the package offer to the customer mayalso be stored in the transaction record 400. Such an indication isillustrated in data object 417, by an entry of “P” in the “packageproduct?” field 414.

The transaction record 400 also stores an indication of the paymentstatus 416 of each product included in the subject transaction. Thisfield may be useful in the physical retail embodiment where a customermay request, be presented with, and accept a package offer at a customerdevice that is remote to the POS terminal at which he provides paymentfor the products he is purchasing. In such an embodiment, when acustomer accepts a package offer, a transaction record is created andstored, indicating the products included in the transaction that arepart of the package offer. The status 416 of the products included inthe package may be set to “pending” at this time. A transactionidentifier for the transaction may be output to the customer forpresentation to the operator of the POS terminal when providing paymentfor the products. Accordingly, when the customer presents thetransaction identifier to the POS operator (who enters it into the POSterminal) the transaction record is retrieved and the appropriate pricesfor the product, as indicated in the “price paid” field are applied tothe transaction total. The package price charged to the customer, aswell as the savings that the customer achieved by purchasing theproducts as a package, may be displayed to the customer at the POS orprinted on the customer's receipt. The status of each of the productsincluded in the package, as stored in the record of the transactiondatabase, may be set to “paid” once the customer provides theappropriate payment. If it is determined at the POS that all of theproducts included in the package offer are not present in the customer'scurrent transaction, the customer may be charged the full retail pricefor the products that are included in the package offer and included inthe current transaction. In one embodiment, another package isdynamically assembled based on the products included in the currenttransaction and presented to the customer at the POS.

FIG. 5 presents an illustrative record 550 of the customer database 128of FIG. 1. The record 550 includes a customer identifier 200 thatuniquely identifies the customer to which the record pertains. Asdescribed above the customer identifier may comprise (i) a frequentshopper identifier in a physical retail environment, or (ii) at least aportion of a “cookie” that is stored on the customer's hard-drive andtransmitted to the central server 102 when the customer “loads” aWeb-page of the central controller.

The customer record 550 may be used to build a customer profile of thecustomer identified by customer identifier 200. In accordance with anexemplary embodiment of the present invention, the customer record 550tracks each of the products that a customer indicated interest in duringhis past visits to the Web site hosted by central server 102. Thecustomer record 550 comprises data objects 551-556, each storinginformation regarding a primary product that was determined to be ofinterest to the customer. Each of such products is identified by productidentifier 202 in transaction record 550. Associated with each productidentifier 202 is (i) a date of interest 560, which indicates the dateon which the customer exhibited interest in the product; (ii) a purchasestatus 562, which indicates whether the customer has purchased theproduct to date; (iii) a package status 564, which indicates whether apackage offer that includes the primary product has been offered to thecustomer and whether it has been accepted by the customer; (iv) adiscount 566, which indicates, if a package offer for the product hasbeen presented to the customer, how much of a discount in the retailprice of the product (or a combination discount in the sum or retailprices of all of the product in the package) was offered to thecustomer; (v) a transaction identifier 568 that indicates thetransaction in which the purchase of the product was included, if any;and (vi) a session identifier 570 that indicates the session duringwhich the customer indicated interest in the product.

For example, data object 554 indicates that customer “C987654321”indicated interest in product “P199” on May 30, 1999 and was presentedwith a package offer, at a package price that was 10% less than the sumof the retail prices of the products included in the package, but thatthe customer declined the package offer. Data object 555 indicates thatthe same customer indicated interested again in product “P199” on Jun.2, 1999 and was again presented with a package offer, this time at apackage price of 15% less than the sum of the retail prices of theproducts included in the package. Data object 555 indicates that thistime the customer accepted the package offer and the product waspurchased by the customer. This may be an indication that the customerwas swayed by the higher discount and should be presented in the futurewith package offers that include at least a 15% discount in the future.

The data stored in customer record 550 is exemplary only. Othervariations will be obvious to one of ordinary skill in the art. Forexample, an indication of the secondary products include in a packageoffer to the customer may also be stored. Such information may be usedto evaluate, for example, whether the customer is more likely to accepta package offer if certain products or types of products are included inthe package offer.

FIG. 6A and FIG. 6B each presents an illustrative web-page of a web-siteassociated with an on-line retail establishment. Referring now to FIG.5A, the illustrative web-page 500A demonstrates a manner in which apackage offer may be presented to a customer in accordance with oneembodiment of the present invention. As shown, web-page 500A may listall items currently in the customer's virtual shopping basket 502. Thepackage offer 504A may be described in a textual passage as well as in atable showing the retail prices for each package product, the sum of theretail prices for the combination of the package products, and thediscounted package price. The package offer 504A comprises an offer forthree products at a package price that is less than the sum of theretail prices of the three products, wherein one of the three productsis the primary product that is of interest to the customer. In theembodiment illustrated in FIG. 6A the primary product is determined tobe of interest to the customer because the customer has placed theproduct into his virtual shopping basket, as indicated by section 502 ofthe web-page 500A. The products presented to the customer in the packageoffer 504A may have been retrieved, for example, from a product database122 such as illustrated by FIG. 2E. Upon being presented with such apackage offer 504A, the customer may choose to either accept or declineit. Accordingly, a first selectable graphic 506 may be provided forallowing the customer to accept the package offer 504A. Similarly, asecond selectable graphic 508 may be provided for allowing the customerto decline the package offer 504A.

Referring now to FIG. 6B, the web-page 550 demonstrates a manner inwhich a package offer may be presented to a customer in accordance withanother embodiment of the present invention. The web-page 500B includesessentially the same elements 502, 506, and 508 as web-page 500A butpackage offer 504A has been substituted with package offer 504B. Packageoffer 504B comprises a package offer in accordance with an embodiment ofthe present invention wherein the customer is allowed to assemble his orher own package by selecting one product from a plurality of menus thatinclude two or more products each (of course, in variations of thisembodiment, the customer may be allowed to select more than one productfrom each menu). The embodiment illustrated in FIG. 6B is similar to theembodiment illustrated in FIG. 2C. Accordingly, a customer presentedwith package offer 504B must first select one product from menu 550 andone product from menu 552 before selecting graphic 506 in order toaccept the package offer.

The web-pages 500A and 500B are shown by way of example only. Othermethods for presenting a package offer via a web-site or other mediumswill occur to those of skill in the art.

FIG. 7 is a flow chart illustrating the general steps of an exemplarymethod 700 for presenting a package offer to a customer. The exemplarymethod 700 begins at starting block 701 where a customer is interactingwith a retail establishment (on-line or physical) via a customer device.At step 702 a determination is made that the customer has expressed aninterest in a primary product. Input signals from a customer device 106may be interpreted by the central server 102 as an expression ofinterest by the customer in the primary product. Input signals from thecustomer device 106 may indicate that the customer has clicked on animage or hyperlink associated with a product using a mouse or otherinput device, that the customer has initiated a keyword search forinformation relating to a product, or that the customer has added aproduct to a virtual shopping cart. Other types of input signals will befamiliar to those of ordinary skill in the art. In certaincircumstances, a lack of an input signal may also be interpreted by thecentral server 102 as an expression of interest by the customer in aproduct. By way of illustration, the central server 102 may beconfigured to infer that a customer is interested in a particularproduct when the central server 102 detects that information pertainingto the particular product has been displayed on the customer's outputdevice 135 for a predetermined length of time. Accordingly, the centralserver 102 may be configured to proactively monitor customerinteractions with a web-site in an effort to infer that one or moreinput signals, or a lack thereof, indicate an expression of interest bythe customer in a product. Alternatively, the central server 102 may beconfigured to passively await the transmission of an input signal from acustomer device 106 that affirmatively indicates that the customer isinterested in a product.

In response to determining that the primary product is of interest tothe customer, a package is assembled at step 704 comprising the primaryproduct and at least one secondary product. The secondary product(s) maybe selected from a database of available secondary products and by beselected based on a prior expression of interest in the product by thecustomer, a relationship of the secondary product to the primary product(e.g. the two are associated in a database as complementary), profitmargin considerations, etc. Assembly of a package may be performed bythe central server 102 configured for execution of a package assemblyprogram module that may be a component of program 116 (FIG. 1A). Theprogram 116 of the central server 102 may be configured to assemblepackages on an ad hoc basis or may be configured to access pre-assembledpackages stored in the product database 122. Exemplary methods forassembling packages will be discussed in greater detail below withreference to FIG. 8.

Next at step 706 a package price for the package is determined. Thepackage price is preferably less than the sum of the retail prices ofeach product in the package. The program 116 of the central server 102may include computer-executable instructions for determining the packageprice for the package. It should be appreciated that the assembly of apackage and the determination of a package price may be interrelatedtasks. For example, the program 116 may be configured to offer acustomer a package of products having a pre-determined package price.The pre-determined package price may be a specific dollar amount or apre-defined percentage of the total retail price for the packageproducts. It is likely to be the case that only certain secondaryproducts may be included in the package in order to satisfy thepre-determined package price and allow the on-line retailer to earn anacceptable profit. Exemplary methods for determining a package price arediscussed below with reference to FIG. 8.

After the package is assembled and the package price is determined, apackage offer is presented to the customer at step 708. A package offercomprises an offer for sale of the package at the package price. In anon-line retail environment, the package offer may be transmitted by thecentral server 102 to a web-site of the on-line retail establishment forpresentation to the customer. The presentation of the package offer mayinclude an input field or a selectable graphic allowing the customer toindicate an acceptance or rejection of the package offer (as illustratedby elements 506 and 508 of FIGS. 6A and 6B). Other methods andinterfaces for presenting a package offer to the customer will beapparent to those of ordinary skill in the art and are considered to bewithin the scope of the present invention. As an example, a packageoffer may be presented to the user as a “pop-up” graphic on a web-pagefor a limited period of time. If the user does not indicate anacceptance of the package offer within the limited time duration, thepop-up graphic may be removed from the web-page without any affirmativeinput from the customer.

Preferably, the package offer is presented to the customer while thecustomer is considering whether to purchase the primary product.However, the package offer may alternatively be presented to thecustomer after the customer has purchased the primary product, as anenticement for the customer to spend more money at the on-line retailestablishment. Thus, the package offer may be e-mailed or otherwisecommunicated to the customer even after the customer has logged-off ofthe web-site associated with the on-line retail establishment. If thecustomer accepts such an offer, any discount due to the customer as aresult of a discount in the retail price of the primary product asincluded in the package offer may be (i) credited to a financial accountassociated with the customer, (ii) provided to the customer as creditthat is redeemable with the retailer operating the central server 102for future purchases, or (iii) reflected as a larger discount in thesecondary product retail prices of the package offer.

Alternatively, a package offer may be triggered once the customerindicates a loss of interest in a product. Such a loss of interest maybe indicated by the customer (i) removing the product from a virtualshopping basket, or (ii) selecting another Web-page or another productwithout placing the subject product in a virtual shopping basket.Additionally, a customer may be presented with a package offer if he hashad a product in his virtual shopping basket for a predetermined amountof time without purchasing it. For example, a customer may be sent ane-mail message that includes a presentation of a package offer(including the product the customer has in his virtual shopping basketfor the predetermined amount of time). If the customer has more than oneproduct in his virtual shopping basket for a predetermined amount oftime, a package may be assembled using one of the products in thevirtual shopping basket as a primary product and at least one otherproduct in the virtual shopping basket as a secondary product.

In a physical retail environment, package offers may be presented to thecustomer in similar manners via a customer service device. A customerservice device may optionally include an input device for allowing theuser to generate an input signal indicating an acceptance or rejectionof a package offer.

At step 710 a determination is made as to whether the customer acceptsthe package offer. If the customer does not accept the package offer, adetermination is made at step 712 as to whether another package shouldbe assembled. The determination of whether to assemble another packagemay be based on many factors, such as whether any other packages makesense for the retailer (based on inventory and/or profitabilityconsiderations), whether a certain number of packages have been declinedby the customer, whether the customer has indicated a desire not to bepresented with further packages, etc. If a decision is made to assembleanother package, the exemplary method 700 may be repeated from step 702,where another primary product that is of interest to the customer isdetermined. Alternately, the method 700 may be repeated from step 704 inorder to assemble another package based on the initial primary product.As shown, the exemplary method 700 ends at step 714 after it isdetermined at step 710 that the customer has accepted a package offer orafter it is determined at step 712 that no further package is to beassembled. Those skilled in the art should recognize that exemplarymethod 700 may be repeated during a session. In other words, thecustomer is not required to complete all transactions and log-off orexit the retail establishment upon accepting a package offer. Thecustomer may accept more than one package offer during a session and maycomplete any or all transactions at any time during the session.

If the customer indicates an acceptance of the package offer, thetransaction may be completed via the web-site in a customary manner. Forexample, the customer may input a credit card number or other paymentidentifier to the web-site. The central server 102 or other serverhosting the web-site may be in communication with a financialinstitution for the purpose of completing transactions. Completing atransaction may comprise charging, debiting or crediting a financialaccount identified by the customer. Alternately, the central server 102or other server hosting the web-site may be in communication with apoint-of-sale terminal at a physical retail establishment for thepurpose of completing transactions.

After the transaction is complete, the central server 102 may beconfigured to arrange for shipment of the package products to thecustomer. By way of illustration, the central server 102 may beconfigured to automatically generate a shipping order that istransmitted to a shipping department of the retailer. Delivery of thepackage products to the customer may be accomplished in any well-knownmanner. In one embodiment, the customer may elect or be required toappear at a physical retail establishment, warehouse or distributioncenter to obtain the package products.

In a physical retail environment, an input device of a customer servicedevice may also allow the customer to enter a payment identifier thatmay identify a financial account to be charged, debited or credited inthe amount of the package price or may identify another form of paymentsuch as electronic currency (e.g., e-cash).

However, in the physical retail environment payment of the package pricewill preferably be accomplished at a point-of-sale terminal 108 that maybe separate from the costumer device 106 at which the customer ispresented with, and accepts, a package offer. In an illustrativeembodiment, the customer may be presented with a customer identifier,such as a personal identification number (PIN) or other type of code,upon accepting the package. The customer device 106 may display thecustomer identifier to the customer via a display device. Alternately,the customer device 106 may be equipped with a printer for printing acoupon or other voucher type paper that includes the customeridentifier. This coupon may further include an indication of theproducts included in the package price (e.g., the description and SKU ofeach product included in the package). The customer identifier mayoptionally be in the form of a barcode or any other form of machinereadable indicia that is to be input into the point-of-sale terminal 108by way of a scanner. In a “frequent shopper club” embodiment, a“frequent shopper ID” previously provided to the customer may serve asthe customer identifier.

The customer identifier may also be stored by the central server 102 inassociation with the customer's transaction record in the transactiondatabase 124. The customer identifier may subsequently be presented bythe customer to the operator of a point-of-sale terminal 108. Thepoint-of-sale terminal 108 may then transmit the customer identifier tothe central server 102 for retrieval of the customer's record from thetransaction database 124. As will be apparent, the point-of-saleterminal 108 may include an input device, such as a scanner, to receivethe product identifiers from the products that the customer believes tobe included in the package.

After indicating an acceptance of a package offer and receiving acustomer identifier, the customer may obtain what he or she believes tobe the package products and proceed to the point of sale terminal forcompletion of the transaction. The point-of-sale 108 terminal maycommunicate with the central server 102 to retrieve the customer'saccepted package price from a transaction database 124 and to charge thecustomer appropriately. The point-of-sale terminal 108 may compare theproduct identifiers of the products obtained by the customer with theproduct identifiers stored in the transaction database 124 inassociation with the package offer. Upon verification that the customerhas obtained each product included in the package, the package price maybe charged to the customer.

FIG. 8, comprising FIG. 8A, FIG. 8B, FIG. 8C and FIG. 8D, provides flowcharts illustrating exemplary methods for assembling package offers inaccordance with an exemplary embodiment of the present invention. FIG.8A demonstrates an exemplary method 800A for assembling a package offerthrough use of a product database 122, such as exemplary productdatabase 122A of FIG. 2A. The exemplary method 800A begins at startingblock 801A, where a primary product has been determined to be ofinterest to a customer. At step 802A, the product identifier for theprimary product is determined. Then at step 803A, the database recordassociated with the product identifier of the primary product isaccessed. The database record associated with the product identifier ofthe primary product stores financial information pertaining to theprimary product, such as the cost to the retailer of the primaryproduct, the retail price of the primary product and the minimum priceat which the retailer is willing to sell the primary product.

At step 804A, at least one secondary product is selected for inclusionin the package. Preferably, the secondary product(s) are selected basedon a prior expression of interest by the customer. The product database122 may store only those products that were previously of interest tothe customer. Alternately, a session database 126 (see FIG. 1A) maystore such information and selection of the secondary products may beperformed based on cross-reference to the session database for adetermination of secondary products in which the customer has expressedan interest.

In another embodiment, selection of the secondary products may be basedon cross-reference to a product database such as illustrated by producttable 122E (FIG. 2E) which may store pre-determined or dynamicallydetermined associations between the primary product and one or moresecondary products. For example, with specific reference to FIG. 2E, theproduct database 122E specifies that if a product having productidentifier “P198” is determined to be the primary product, the productshaving product identifiers “P104” and “P119” are to be selected as thesecondary products and the three products presented to the customer fora package price of “$300.00”, as depicted in record 210E. As a specificillustration, if a red scarf is determined to be the primary product ofinterest to the customer, an entry in the product table 122E may specifythat the secondary products to be selected for the package are amatching pair of red gloves and a red hat. Other methods for selectionof secondary products will occur to those of ordinary skill in the art.

Next at step 805A, the profit margin for the primary product isdetermined based on the retail price and the cost of the primary product(e.g., profit margin=retail price−cost). In one embodiment of thepresent invention, the selection of the secondary products to beincluded in the package with the primary product is based on the profitmargin of the primary product. For example, if the primary product has ahigh profit margin, secondary products with relatively low profitmargins may be included in the package offer because the high profitmargin of the primary product may be used to fund the overall discountof the package price as compared to the sum of the retail prices of theprimary product and the secondary product(s).

For example, a primary product may be a dress that has a profit marginof $50 (e.g., retail price of dress=$150, and the cost of thedress=$100). The central server 102 may thus include a relatively lowmargin product, such as a scarf that has an associated profit margin of$5 (e.g., retail price of scarf=$50, and cost of scarf=$45). Due to thehigh margin of the dress, the package of the dress and the scarf may beoffered at an attractively discounted price of $170. The package priceof $170 is 15% less than $200, the sum of the retail prices for thedress and the scarf ($150+$50=$200). If the primary product had not beena high margin product, the retailer may have been unwilling to offersuch a high discount due to an unacceptably low overall profit marginfor the contents of the package. In the above example, the retailerearns a $30 overall profit margin on the contents of the package,referred to herein as a package profit margin ($175 (package price)−$100(cost of dress)−$45 (cost of scarf)=$30). If, however, the margin of thedress had only been $15 (e.g. the cost of the dress in the aboveexample=$135), the retailer would have suffered a loss of $5 on thepackage if he had offered it to the customer for the package price of$170 ($170 (package price)−$135(cost of dress)−$45(cost of scarf)=−$5).The retailer may find such a loss unacceptable. In order to prevent sucha loss the retailer may (i) determine a lower discount (e.g. less than15% in the above example), or (ii) select a secondary product with ahigher profit margin and attempt to assemble another package at therelatively higher discount (e.g., 15%).

Also, the retailer may wish to earn a minimum package profit margin oneach package offer. For example, the retailer may set a minimum profitmargin for a package price at a predetermined amount (e.g., $10) or at apredetermined percentage of the sum of the profit margins for theprimary and secondary products included in a package offer (e.g., 50%).As an example of the latter, a profit margin for a primary product is$50, a profit margin for a first secondary product is $10, and a profitmargin for a second secondary product is $20. The sum of the profitmargins for the primary product and the two secondary products is $80($50+$10+$20=$80). The retailer has set the minimum package profitmargin at 50% of the sum of the profit margins of the products includedin the package based on the retail price of each product. Thus, in orderfor the three products above to be offered in a package, the packageprofit margin has to be $40 or more. Accordingly, in such an embodiment,the central server 102 may take the profit margin of the primary productand the secondary product(s) into account when assembling a package anddetermining a package price.

In still another illustrative embodiment, selection of secondaryproducts for inclusion in a package may be based entirely on criteriafor profitability. Based on products available in inventory, the centralserver 102 may attempt to assemble a package that provides a particulardiscount level to the customer while yielding a certain profit marginfor the retailer. In one embodiment of the present invention, theretailer may wish to include products that are distressed (e.g., havenot been selling well or are about to expire) in a package. In such acase, the retailer may offer a very high discount on the secondaryproduct because any price received as a result of the distressed productbeing sold as part of a package may be more profitable than letting theproduct sit on the shelf longer and/or expire. Such distressed productsmay be flagged in an inventory database and selected by the centralserver 102 for inclusion in a package. The secondary products selectedfor the package may have no relationship to the primary product otherthan a monetary relationship. For example, if a primary product ofinterest to a customer is a television, the secondary products includedin the package may be a shovel and a sweater, which were selected basedentirely on profit margin considerations. However, as will beappreciated by those of skill in the art, a package offer is more likelyto be accepted by a customer if the package includes products that areknown to be of interest to the customer. Therefore, assembly of packagesbased entirely on economic considerations may not be practical.

At step 806A, it is determined whether the profit margin for the primaryproduct is high. Of course, the definition of a high profit margin isrelative. For example, a retailer may set a threshold amount at or abovewhich the profit margin is to be considered high and below which theprofit margin is considered to be low. The threshold amount mayalternatively be a threshold percentage of the sum of the costs of theproducts included in the package. In an illustrative embodiment, thecriteria for determining whether a profit margin is high may becustomer-specific. In other words, the retailer may be willing torealize less of a profit margin on package sales to regular or preferredcustomers, as compared to infrequent customers. Furthermore, theretailer may determine that a particular customer has historicallyaccepted packages offers that provide a certain percentage discount andmay attempt to assemble a package having a package price that providesthat percentage discount. Data pertaining to historical transactions maybe stored in a transaction database 124 or a customer database 128(asshown in FIG. 1A and illustrated in FIG. 4 and FIG. 5).

If the profit margin of the primary product is determined to besufficiently high, a more deeply discounted package price is calculatedat step 807A. If the profit margin of the primary product is notsufficiently high, a less discounted package price is determined at step808A. Again, the retailer may set a threshold percentage (e.g., 15%) offof the sum of the retail prices of the products included in the packageat or above which a package price is to be considered a more discountedpackage price and below which a package price is to be considered a lessdiscounted package price. Alternatively, rather than setting a thresholdamount or percentage, the retailer may set a range of acceptable amountor percentages within which the package profit margin is to beconsidered acceptable (e.g., 10%-25%), rather than high or low. Aftercalculation of the package price, the profit margin for the package iscalculated at step 809A by subtracting the cost of each package productfrom the package price. At step 810A, a determination is made as towhether the profit margin of the package is acceptable to the retailer.If the profit margin is not acceptable to the retailer, a decision toassemble a different package may be made at step 811A. If a new packageis to be assembled, the exemplary method 800A is repeated from step804A, where another at least one secondary package is selected. However,if it is decided at step 811A not to assemble a new package, the packageprice for the existing package is adjusted (e.g., increased by apredetermined percentage or amount) at step 812A. From step 812A, theexemplary method 800A is repeated from step 809A, where the profitmargin of the package is calculated based on the adjusted package price.When a package is finally assembled having an acceptable package price,the method advances from step 810A to step 813A, where the package offeris presented to the customer. The exemplary method 800A then ends atstep 814A.

FIG. 8B demonstrates an exemplary method 800B for assembling a packageoffer through use of a product database 122, such as exemplary productdatabase 122B of FIG. 2B. The exemplary method 800B begins at startingblock 801B, where a primary product has been determined to be ofinterest to a customer. At step 802B, the product identifier for theprimary product is determined. Then, at step 803B, the database recordassociated with the product identifier of the primary product isaccessed. The database record associated with the product identifier ofthe primary product stores a list of associated secondary products. Atstep 804B, the list of secondary products associated with the primaryproduct is retrieved from the database record. At step 805B a pluralityof “pick X” package prices are determined, corresponding to the packageprice if the customer selects “X” number of the associated secondaryproducts from the list. For example, a “pick one” package pricecorresponds to the package price if the customer selects one secondaryproduct to be included in a package along with the primary product.Likewise, a “pick two” package price corresponds to the package price ifthe customer selects two of the associated secondary products from thelist. Any number of “pick X” package prices may be determined, limitedonly by the number of associated secondary products in the list. Thoseskilled in the art should recognize, however, the pre-determined list ofassociated secondary products is not required. The list of associatedsecondary products may alternately be created ad hoc and may include anynumber of secondary products. Determination of the “pick X” packageprices may be performed ad hoc, or may be performed by retrievingpredetermined “pick X” package prices from the database recordassociated with the product identifier of the primary product. At step806B multiple secondary products from the list of associated secondaryproducts are presented to the customer along with instructions that thecustomer is permitted to select up to “X” number of the secondaryproducts for inclusion in a package offered at the corresponding “pickX” package price. The exemplary method 800B then ends at step 807B.

FIG. 8C demonstrates an exemplary method 800C for assembling a packageoffer through use of a product database 122, such as exemplary productdatabase 122C of FIG. 2C. The exemplary method 800C begins at startingblock 801C, where a primary product has been determined to be ofinterest to a customer. At step 802C, the product identifier for theprimary product is determined. Then at step 803C, the database recordassociated with the product identifier of the primary product isaccessed. The database record associated with the product identifier ofthe primary product stores a plurality of lists of associated secondaryproducts and a package price. For brevity, the present example will belimited to a first associated secondary product list and a secondassociated secondary product list. At step 804C, the first list ofsecondary products associated with the primary product is retrieved fromthe database record. At step 805C the second list of secondary productsassociated with the primary product is retrieved from the databaserecord. At step 806C the package price is retrieved from the databaserecord. Then at step 807C the first and second lists of associatedsecondary products are presented to the customer. At step 808C, thecustomer is instructed that he or she may select one secondary productfrom each list of associated secondary products for inclusion in apackage along with the primary package. The package will be offered forsale at the package price for which ever products are selected by thecustomer. The exemplary method 800C then ends at step 809C. Although thecustomer was instructed to pick one product from each presented list, itshould be understood that the customer could be instructed to selectmore than one product from at least one of the lists.

FIG. 8D demonstrates an exemplary method 800D for assembling a packageoffer through use of a product database 122, such as exemplary productdatabase 122D of FIG. 2D. The exemplary method 800D begins at startingblock 801D, where a primary product has been determined to be ofinterest to a customer. At step 802D, the product identifier for theprimary product is determined. Then, at step 803D, the database recordassociated with the product identifier of the primary product isaccessed. The database record associated with the product identifier ofthe primary product stores a plurality of lists of associated secondaryproducts and a plurality of corresponding package prices. For brevity,the present example will be limited to a first associated secondaryproduct list, a corresponding first package price, a second associatedsecondary product list and a corresponding second package price. At step804D, the first list of secondary products and the corresponding firstpackage price associated with the primary product are retrieved from thedatabase record. Similarly, at step 805D the second list of secondaryproducts and the corresponding second package price associated with theprimary product are retrieved from the database record. At step 806D thefirst list of secondary products is presented to the customer forinclusion in a first package, along with the primary product, offeredfor sale at the first package price. At step 807D the second list ofsecondary products is presented to the customer for inclusion in seconda package, along with the primary product, offered for sale at thesecond package price. The exemplary method 800D then ends at step 808D.

FIG. 9 is a flow chart illustrating an exemplary method for determininga package price in accordance with an exemplary embodiment of thepresent invention. The method 900 begins at starting block 901, where aprimary product is determined to be of interest to a customer. At step902, the retail profit margin for the primary product is determinedbased on the difference in the retail price of the primary product andthe cost of the primary product.

Next, at step 903, the minimum profit margin for the primary product isdetermined. The minimum profit margin corresponds to the difference inthe minimum price at which the retailer is willing to sell the primaryproduct and the cost of the primary product. At step 904 one or moresecondary products are selected for inclusion in the package. Selectionof the secondary products may be based on the retail margin or theminimum margin of the primary product. In other words, if the retailmargin or the minimum margin for the primary product is high, moreexpensive secondary products may be selected for inclusion in thepackage. Other manners of selecting secondary products for inclusion ina package have been discussed herein. Still other methods for selectingsecondary products for inclusion in a package will be apparent to thoseof ordinary skill in the art. At step 905, the retail profit margin foreach secondary product selected for inclusion in the package isdetermined. At step 906, the minimum profit margin for each secondaryproduct included in the package is determined. Then at step 907, theminimum profit margin for the package is determined by summing theminimum profit margin for the primary product and each minimum profitmargin of the secondary products included in the package.

At step 908, a determination is made as to whether the minimum packageprofit margin is acceptable. If the minimum package profit margin is notacceptable, a decision may be made at step 909 to discard the presentpackage and assemble a new package. If it is decided to assemble a newpackage, the exemplary method 900 is repeated from step 904, where a newset of secondary products are selected for inclusion in the new package.However, if it is decided not to assemble a new package, the minimumprofit margin of the primary product and/or one or more of the secondaryproducts included in the package is adjusted at step 910. To adjust theminimum profit margin for a product, a new price for that product isselected that falls between the retail price and the minimum price forthat product. After adjustment of the minimum profit margin of theprimary product and/or one or more of the secondary products, theadjusted package profit margin is calculated at step 911. From step 911,the method 900 is repeated from step 908, where it is determined if thepackage profit margin is acceptable. When a package is finallydetermined having an acceptable profit margin (e.g., a profit marginabove a predefined amount or percentage or within an acceptable amountor percentage range), the package offer for sale of the package at thepackage price is presented to the customer at step 912. The exemplarymethod 900 then ends at step 913.

FIG. 10A and FIG. 10B are a flow chart illustrating an exemplary methodfor determining a package offer to present to a customer in response tothe customer's interest in a primary product, in accordance with anexemplary embodiment of the present invention. The process 1000 of FIGS.10A and 10B is discussed with illustrative reference to product table122A (FIG. 2A) and session record 300 (FIG. 3).

The process 1000 of FIGS. 10A and 10B begins at step 1002, where it isdetermined that a primary product is of interest to a customer. Variousmethods of determining that a product is of interest to a customer, andshould therefore be considered a primary product in accordance with thisinvention, are discussed above. In response to the determination that aprimary product is of interest to a customer, the session record of thecustomer that has indicated the interest in the current product isaccessed in step 1004, in order to determine whether there are any otherproducts the customer has indicated interest in earlier in the session.For example, referring to session record 300, if it is determine thatproduct “P122” is the primary product, the session record 300 indicates,in data object 312, that product “P102” is also of interest to thecustomer, since the customer had previously selected it. It should beassumed, for purposes of the present example, that if a the elapsed timebetween the “time selected” 306 and “time released” 308 corresponding toa product in the session record 300 is at least two seconds, the productshould be considered of interest to the customer. Referring again toFIG. 10A, at step 1006, a product from the session record is selected asa secondary product to be included in a package offer with the primaryproduct. In the example discussed above with reference to session record300, product “P102” is selected as the secondary product.

Referring again to FIG. 10A, at step 1008, the record of the primaryproduct is retrieved from the product database based on the productidentifier. In the current example, product “P122” is considered theprimary product. Therefore, the record 217A of product “P122” isretrieved from product table 122A, for the purposes of the example. Atstep 1010, the minimum price for the product is determined. Such adetermination may be made based on, for example, a minimum profit marginset by the retailer. Alternatively, such a determination may be made byretrieving the minimum price associated with the primary productdirectly from the product database. Again referring to product table122A as an example, record 217A indicates that the minimum price forproduct “P122” is “$32.00”. Referring again to the process 1000, adiscounted price for the primary product is set at step 1012, based onthe minimum price. In the current example, the system will set thediscounted price, as to be included in the package, at $32.00, theminimum price. Alternatively, the discounted price may be set at anyprice not greater than $35.00 (the retail price) and not less than$32.00 (the minimum price).

Referring again to process 1000, the record of the secondary product(determined in step 1006) is retrieved from the product database 122 instep 1014 and the minimum price for the secondary product is determinedin step 1016. Referring again to the example using the product table122A, the secondary product “P102” has an associated minimum price of$34.00, as indicated by record 212A. Returning to process 1000, thediscounted price, as to be included in the package price, is determinedfor the secondary product in step 1018. The discounted price may bebased on, for example, the minimum price and the retail price and anyother rules set by the retailer. An example of such a rule may be thatthe discounted price should be set half-way between the retail price andthe minimum price for the secondary product for an initial attempt tocalculate an acceptable package price. Thus, in the current example, thediscounted price for product “P102” is set at $37.00.

Returning to process 1000, a determination of whether another secondaryproduct should be selected is made at decision block 1020. Such adetermination may be made, based on, for example, whether the retailerhas set a minimum or maximum number of products to be included in apackage. Alternatively, such a determination may be made based on anevaluation of the package profit margin based on the current products inthe package. For example, if the package profit margin is unacceptablylow, another secondary product may be selected (maybe a relatively highprofit margin secondary product) in an attempt to obtain an acceptablepackage profit margin. If, at decision block 1020, it is determined thatanother secondary product is to be selected, the process loops back tostep 1006. If, at decision block 1020, it is determined that anothersecondary product is not to be selected, the process continues to step1022. For the sake of the current example, it is assumed that theretailer set a maximum number of products in a package at two so anothersecondary product is not selected.

At step 1022, the package price is determined based on the discountedprices set in steps 1012 and 1018. In the current example, the packageprice is determined to be $69.00 ($32.00 for the primary product“P122”+$37.00 for the secondary product “P102”). At step 1024, theprofit margin of the package is determined. The package profit margin,as determined above, is determined by subtracting the cost of eachproduct included in the package from the package price. In the currentexample the cost associated with the primary product “P122”, asindicated by record 217A of product table 122A, is $30.00. The costassociated with secondary product “P102”, as indicated by record 212A ofproduct table 122A, is also $30.00. Therefore, the package profit marginis $9.00 ($69.00−$30.00−$30.00=$9.00). Another way of looking at theprofit margin is that it is 15% of the sum of the cost of the productsincluded in the package ([$9.00/($30.00+$30.00)]*100=15%).

At decision block 1026, it is determined whether the package profitmargin is acceptable. As discussed above, a retailer may set a minimumprofit margin or a range of acceptable profit margins, in the form of adollar amount or a percentage. If, at decision block 1026 it isdetermined that the profit margin is acceptable, the process 1000continues to step 1028. At step 1028, the package offer comprising theprimary product determined in step 1002 and the secondary product(s)selected in step 1006 are presented to the customer for the packageprice determined in step 1022. Of course, other information, such asdescriptions or images of the products included in the package couldalso be presented to the customer as part of the package offer. For thesake of the current example, it is assumed that 15% is an acceptablepackage profit margin.

If, at decision block 1026, it is determined that the package profitmargin is not acceptable, the process continues to decision block 1030.At decision block 1030 it is determined whether another package offershould be created. Creating another package offer may comprisedetermining another package price for the primary product and thesecondary product(s) defining the package offer. Creating anotherpackage offer may also comprise selecting another secondary product tobe included in the package in addition to or instead of at least onesecondary product currently included in the package.

If, at decision block 1030, it is determined that another package offershould not be created, the process 1000 may end. It may be determinedthat another package offer should not be created if, for example, thereare no other secondary products available (e.g., there are no otherproducts other than the ones already selected store in the sessionrecord being used to create the current package) and/or if thediscounted prices for the products included in the package were alreadyset to the minimum prices for the products. If, at decision block 1030,it is determined that another package offer should be created, theprocess 1000 continues to decision block 1032.

At decision block 1032 it is determined whether another secondaryproduct should be selected. If another secondary product is to beselected, the process 1000 loops back to step 1006. A retailer may setpreferences regarding whether, in creating another package offer, (i)the currently selected secondary product(s) should be deselected andanother secondary product selected, (ii) another secondary productsshould be selected in addition to the currently selected secondaryproduct(s), or (iii) the discounted prices for the currently selectedsecondary products should be decremented. Based on such preferences, ifat decision block 1032 it is determined that another secondary productshould not be selected, the process 1000 continues to decision block1034.

At decision block 1034 it is determined whether at least one of thediscounted prices for the products included in the package can belowered. Such a determination may be made by comparing the discountedprice of each product in the package to the minimum price associatedwith the product. If the discounted price of at least one product isgreater than the minimum price for the product, then the discountedprice can be lowered. The discounted price can be lowered by apredefined dollar amount or percentage such that it is not lower thanthe minimum price for the product. If, at step 1034, it is determinedthat the discounted price for at least one product can be lowered, thenthe process 1000 continues to step 1036, where the at least onediscounted price is lowered. Once the discounted price is lowered, theprocess loops back to step 1022, where the package price is once againdetermined based on the discounted prices of the products included inthe package, at least one of which has just been lowered. If, atdecision block 1034, it is determined that at least one discounted pricecannot be lowered (e.g., all discounted prices are set to the associatedminimum prices of the corresponding products), then the process 1000 mayloop back to step 1006, where another secondary product is selected inaddition to or instead of the currently selected secondary product(s).Alternatively, if at decision block 1034, it is determined that at leastone discounted price cannot be lowered, the process 1000 may end.

While this invention has been described in detail with particularreference to exemplary embodiments thereof, it should be understood thatvariations and modifications can be effected within the spirit and scopeof the invention. For example, it has been described herein that acustomer input signal indicating addition of a product to a virtualshopping cart may be interpreted as an expression of interest in aprimary product and may trigger the assembly of a package. In analternate embodiment, a new package may be assembled and presented tothe customer each time the customer adds a new product to the virtualshopping cart. Each new package may be based on the aggregate contentsof the virtual shopping cart. Furthermore, the number of products, theexpected purchase total for all of the products currently in theshopping basket and/or the combined profit margin of the productscurrently in the shopping basket may be used to determine the depth ofthe discount utilized to calculate the package price. Likewise, a newpackage offer may be assembled and presented to the customer each timethe customer removes a product from the virtual shopping cart. Again,the new packages may be based on the products remaining in the virtualshopping cart or may be based on the removed product, as an enticementto add the removed product back into the virtual shopping cart. Inanother alternate embodiment, the customer may be provided with anopportunity to request a package. A customer request for a package maycomprise a request for the retailer to select secondary products forinclusion in a package to be offered at a retailer determined packageprice. As another example, a customer request for a package may comprisea request for a retailer-selected package price for a package that isassembled by the customer. In still another example, the customer mayselect the primary product and the secondary products for inclusion inthe package as well as a suggested package price. Thus, the customerrequest for the package may comprise a request for retailer approval ofthe customer-assembled package. These and other alternate embodimentswill be apparent to those of ordinary skill in the art. Accordingly, thescope of the present invention is to be limited only by the appendedclaims.

What is claimed is:
 1. A portable barcode scanner that: receives anindication of a product scanned by a customer; wirelessly transmits anindication of the scanned product to a server device; wirelesslyreceives, in response to the transmitting of the indication of thescanned product and from the server device, an indication of a packageoffer, the package offer including the scanned product and comprising adiscount on the package of the scanned product and at least one otherproduct; and outputs an indication of the package offer to the customer.